public class WalkMobLogic : BaseMobLogic
{
	public override void OnStart(LogicController contriller, string enterFromLogic, params object[] args)
	{
		base.OnStart(contriller, enterFromLogic);
		LogicEvent(8);
		LogicEvent(4);
	}

	public override void OnEvent(int name, params object[] args)
	{
		switch ((mobAssignerEvent)name)
		{
		case mobAssignerEvent.PathIsOver:
			LogicEvent(14);
			break;
		case mobAssignerEvent.ImOnMobWayPoint:
			LogicEvent(11);
			break;
		case mobAssignerEvent.ImStuck:
			ChangeLogic("Idle", 3f, 5f);
			break;
		case mobAssignerEvent.CanNotFindPathToNearestPoint:
			ChangeLogic("Idle", 1f, 2f);
			break;
		case mobAssignerEvent.CanNotFindPathToAnyPoint:
			LogicEvent(12);
			break;
		case mobAssignerEvent.ObstaclePlayer:
			LogicEvent(19);
			break;
		case mobAssignerEvent.ObstacleCar:
			LogicEvent(19);
			break;
		case mobAssignerEvent.ObstacleMob:
			LogicEvent(19);
			break;
		case mobAssignerEvent.TargetInShootRande:
		{
			EnemyBehavior enemyBehavior2 = (EnemyBehavior)args[1];
			if (enemyBehavior2.behaviorModel == BehaviorModel.Passive || enemyBehavior2.behaviorModel == BehaviorModel.Aggressive || enemyBehavior2.behaviorModel == BehaviorModel.Police)
			{
				ChangeLogic("Spoot", args[0], enemyBehavior2.enemyAreaBehavior.aggressiveDistance);
			}
			break;
		}
		case mobAssignerEvent.ObstacleWall:
			ChangeLogic("Idle", 0, 1f, 0.2f);
			break;
		case mobAssignerEvent.Chase:
		{
			EnemyBehavior enemyBehavior = (EnemyBehavior)args[1];
			if (enemyBehavior.behaviorModel == BehaviorModel.Passive || enemyBehavior.behaviorModel == BehaviorModel.Aggressive || enemyBehavior.behaviorModel == BehaviorModel.Police)
			{
				ChangeLogic("Chase", args[0], enemyBehavior.enemyAreaBehavior.aggressiveDistance);
			}
			else
			{
				ChangeLogic("Escape", args[0], enemyBehavior.enemyAreaBehavior.aggressiveDistance);
			}
			break;
		}
		}
		base.OnEvent(name, args);
	}

	public override void OnStop()
	{
		LogicEvent(3);
		base.OnStop();
	}
}
